function getAlimentoModel(grupo){
    var alModel = new Model(
            webRoot,
            "Alimento",
            "id",
            "Alimento",
            "alimento",
            "asc",
            10,
            0,
            0,
            "Alimentos/getListData",
            "Alimentos/getDetailData",
            "Alimentos/save"
      );

      alModel.addColumn("Alimento", "id", "string", 1, true);
      alModel.addColumn("Alimento", "grupo_alimento_id", "string", 1, false);
      alModel.addColumn("Alimento", "numero", "string", 1, true);
      alModel.addColumn("Alimento", "alimento", "string", 3, false);
      alModel.addColumn("Alimento", "energia_kj", "number", 1, true);
      alModel.addColumn("Alimento", "energia_kcal", "number", 1, true);
      alModel.addColumn("Alimento", "agua_g", "number", 1, true);
      alModel.addColumn("Alimento", "proteinas_g", "number", 1, true);
      alModel.addColumn("Alimento", "grasa_total_g", "number", 1, true);
      alModel.addColumn("Alimento", "carbohidratos_total_g", "number", 1, true);
      alModel.addColumn("Alimento", "carbohidratos_disponible_g", "number", 1, true);
      alModel.addColumn("Alimento", "fibra_g", "number", 1, true);
      alModel.addColumn("Alimento", "cenizas_g", "number", 1, true);
      alModel.addColumn("Alimento", "sodio_mg", "number", 1, true);
      alModel.addColumn("Alimento", "potasio_mg", "number", 1, true);
      alModel.addColumn("Alimento", "calcio_mg", "number", 1, true);
      alModel.addColumn("Alimento", "fosforo_mg", "number", 1, true);
      alModel.addColumn("Alimento", "hierro_mg", "number", 1, true);
      alModel.addColumn("Alimento", "zinc_mg", "number", 1, true);
      alModel.addColumn("Alimento", "tiamina_mg", "number", 1, true);
      alModel.addColumn("Alimento", "rivoflavina_mg", "number", 1, true);
      alModel.addColumn("Alimento", "niacina_mg", "number", 1, true);
      alModel.addColumn("Alimento", "vitamina_c_mg", "number", 1, true);
      alModel.addColumn("Alimento", "ac_gr_saturados_g", "number", 1, true);
      alModel.addColumn("Alimento", "ac_gr_monoinsaturados_g", "number", 1, true);
      alModel.addColumn("Alimento", "ac_gr_poliinsaturados_g", "number", 1, true);
      alModel.addColumn("Alimento", "colesterol_mg", "number", 1, true);
      alModel.addColumn("Alimento", "AGPw6", "number", 1, true);
      alModel.addColumn("Alimento", "AGPW3", "number", 1, true);

      alModel.setFilter("Alimento", "grupo_alimento_id", grupo);

      return alModel;
}

function getAlimentoTableUI(grupo, model){
    var alTableUI = new TableUI(
        "alimentos_table_"+grupo,
        "alimentos_pager_"+grupo,
        "Alimentos",
        290
      );

      alTableUI.setModel(model);

      alTableUI.addColumn("Alimento", "id", "Id", "id", 100, arrColumnas[grupo]["id"]);
      alTableUI.addColumn("Alimento", "numero", "Número", "numero", 100, arrColumnas[grupo]["numero"]);
      alTableUI.addColumn("Alimento", "alimento", "Alimento", "alimento", 200, arrColumnas[grupo]["alimento"]);
      alTableUI.addColumn("Alimento", "energia_kj", "Energía (kj)", "energia_kj", 100, arrColumnas[grupo]["energia_kj"]);
      alTableUI.addColumn("Alimento", "energia_kcal", "Energía (kcal)", "energia_kcal", 100, arrColumnas[grupo]["energia_kcal"]);
      alTableUI.addColumn("Alimento", "agua_g", "Agua (g)", "agua_g", 100, arrColumnas[grupo]["agua_g"]);
      alTableUI.addColumn("Alimento", "proteinas_g", "Proteínas (g)", "proteinas_g", 100, arrColumnas[grupo]["proteinas_g"]);
      alTableUI.addColumn("Alimento", "grasa_total_g", "Grasa Total (g)", "grasa_total_g", 100, arrColumnas[grupo]["grasa_total_g"]);
      alTableUI.addColumn("Alimento", "carbohidratos_total_g", "Carbohidratos Total (g)", "carbohidratos_total_g", 100, arrColumnas[grupo]["carbohidratos_total_g"]);
      alTableUI.addColumn("Alimento", "carbohidratos_disponible_g", "Carbohidratos Disponible (g)", "carbohidratos_disponible_g", 100, arrColumnas[grupo]["carbohidratos_disponible_g"]);
      alTableUI.addColumn("Alimento", "fibra_g", "Fibra (g)", "fibra_g", 100, arrColumnas[grupo]["fibra_g"]);
      alTableUI.addColumn("Alimento", "cenizas_g", "Cenizas (g)", "cenizas_g", 100, arrColumnas[grupo]["cenizas_g"]);
      alTableUI.addColumn("Alimento", "sodio_mg", "Sodio (mg)", "sodio_mg", 100, arrColumnas[grupo]["sodio_mg"]);
      alTableUI.addColumn("Alimento", "potasio_mg", "Potasio (mg)", "potasio_mg", 100, arrColumnas[grupo]["potasio_mg"]);
      alTableUI.addColumn("Alimento", "calcio_mg", "Calcio (mg)", "calcio_mg", 100, arrColumnas[grupo]["calcio_mg"]);
      alTableUI.addColumn("Alimento", "fosforo_mg", "Fósforo (mg)", "fosforo_mg", 100, arrColumnas[grupo]["fosforo_mg"]);
      alTableUI.addColumn("Alimento", "hierro_mg", "Hierro (mg)", "hierro_mg", 100, arrColumnas[grupo]["hierro_mg"]);
      alTableUI.addColumn("Alimento", "zinc_mg", "Zinc (mg)", "zinc_mg", 100, arrColumnas[grupo]["zinc_mg"]);
      alTableUI.addColumn("Alimento", "tiamina_mg", "Tiamina (mg)", "tiamina_mg", 100, arrColumnas[grupo]["tiamina_mg"]);
      alTableUI.addColumn("Alimento", "rivoflavina_mg", "Rivoflavina (mg)", "rivoflavina_mg", 100, arrColumnas[grupo]["rivoflavina_mg"]);
      alTableUI.addColumn("Alimento", "niacina_mg", "Niacina (mg)", "niacina_mg", 100, arrColumnas[grupo]["niacina_mg"]);
      alTableUI.addColumn("Alimento", "vitamina_c_mg", "Vitamina C (mg)", "vitamina_c_mg", 100, arrColumnas[grupo]["vitamina_c_mg"]);
      alTableUI.addColumn("Alimento", "ac_gr_saturados_g", "Ac. Gr. Saturados (g)", "ac_gr_saturados_g", 100, arrColumnas[grupo]["ac_gr_saturados_g"]);
      alTableUI.addColumn("Alimento", "ac_gr_monoinsaturados_g", "Ac. Gr. Monoinsaturados (g)", "ac_gr_monoinsaturados_g", 100, arrColumnas[grupo]["ac_gr_monoinsaturados_g"]);
      alTableUI.addColumn("Alimento", "ac_gr_poliinsaturados_g", "Ac. Gr. Poliinsaturados (g)", "ac_gr_poliinsaturados_g", 100, arrColumnas[grupo]["ac_gr_poliinsaturados_g"]);
      alTableUI.addColumn("Alimento", "colesterol_mg", "Colesterol (mg)", "colesterol_mg", 100, arrColumnas[grupo]["id"]);
      alTableUI.addColumn("Alimento", "AGPw6", "AGPw6", "AGPw6", 100, arrColumnas[grupo]["id"], arrColumnas[grupo]["AGPw6"]);
      alTableUI.addColumn("Alimento", "AGPW3", "AGPw3", "AGPW3", 100, arrColumnas[grupo]["id"], arrColumnas[grupo]["AGPW3"]);
      alTableUI.addColumn("Alimento", "ajuste_g_cal", "Ajuste", "ajuste_g_cal", 100, arrColumnas[grupo]["ajuste_g_cal"]);

      alTableUI.initTable(10);
      alTableUI.setPagesControl(document.getElementById('page_alim'));
      //alTableUI.setRegsByPageControl(document.getElementById('limit_pac'));

      return alTableUI;
}

function getAlimentoDetailUI(grupo, model, table){

    model.setColumnValue("Alimento", "grupo_alimento_id", grupo);

    var alimentoDetailUI = new DetailUI("Alimento");

    alimentoDetailUI.setModel(model);
    alimentoDetailUI.setTitleContainer(document.getElementById("alimento_detail_title"));
    alimentoDetailUI.setMessageContainer(document.getElementById("errorMessage_"+grupo));

    alimentoDetailUI.setAddButton(document.getElementById("add_ali_"+grupo));
    alimentoDetailUI.setEditButton(document.getElementById("edit_ali_"+grupo));
    alimentoDetailUI.setDelButton(document.getElementById("del_ali_"+grupo));

    alimentoDetailUI.setOkButton(document.getElementById("sbtguardar_"+grupo));

    alimentoDetailUI.addField(document.getElementById("alimento_"+grupo), "Alimento", "alimento", "string", 50, false);
    alimentoDetailUI.addField(document.getElementById("ajuste_g_cal_"+grupo), "Alimento", "ajuste_g_cal", "number", 1, false);
    //alimentoDetailUI.addField(document.getElementById("grupo_alimento_id_"+grupo), "Alimento", "grupo_alimento_id", "number", 1, false);
    alimentoDetailUI.addField(document.getElementById("energia_kj_"+grupo), "Alimento", "energia_kj", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("energia_kcal_"+grupo), "Alimento", "energia_kcal", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("agua_g_"+grupo), "Alimento", "agua_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("proteinas_g_"+grupo), "Alimento", "proteinas_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("grasa_total_g_"+grupo), "Alimento", "grasa_total_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("carbohidratos_total_g_"+grupo), "Alimento", "carbohidratos_total_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("carbohidratos_disponible_g_"+grupo), "Alimento", "carbohidratos_disponible_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("fibra_g_"+grupo), "Alimento", "fibra_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("cenizas_g_"+grupo), "Alimento", "cenizas_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("sodio_mg_"+grupo), "Alimento", "sodio_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("potasio_mg_"+grupo), "Alimento", "potasio_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("calcio_mg_"+grupo), "Alimento", "calcio_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("fosforo_mg_"+grupo), "Alimento", "fosforo_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("hierro_mg_"+grupo), "Alimento", "hierro_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("zinc_mg_"+grupo), "Alimento", "zinc_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("tiamina_mg_"+grupo), "Alimento", "tiamina_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("rivoflavina_mg_"+grupo), "Alimento", "rivoflavina_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("niacina_mg_"+grupo), "Alimento", "niacina_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("vitamina_c_mg_"+grupo), "Alimento", "vitamina_c_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("ac_gr_saturados_g_"+grupo), "Alimento", "ac_gr_saturados_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("ac_gr_monoinsaturados_g_"+grupo), "Alimento", "ac_gr_monoinsaturados_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("ac_gr_poliinsaturados_g_"+grupo), "Alimento", "ac_gr_poliinsaturados_g", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("colesterol_mg_"+grupo), "Alimento", "colesterol_mg", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("AGPw6_"+grupo), "Alimento", "AGPw6", "number", 1, true);
    alimentoDetailUI.addField(document.getElementById("AGPW3_"+grupo), "Alimento", "AGPW3", "number", 1, true);

    //Listeners para agregado de formulas desarrolladas
    alimentoDetailUI.removeOnAddListener(onAddAlimento, alimentoDetailUI);
    alimentoDetailUI.addOnAddListener(onAddAlimento, alimentoDetailUI);

    alimentoDetailUI.removeOnDelListener(onAddAlimento, alimentoDetailUI);
    alimentoDetailUI.addOnDelListener(onAddAlimento, alimentoDetailUI);

    alimentoDetailUI.removeOnEditListener(onAddAlimento, alimentoDetailUI);
    alimentoDetailUI.addOnEditListener(onAddAlimento, alimentoDetailUI);

    model.removeOnSaveListener(onSaveAlimento, table);
    model.addOnSaveListener(onSaveAlimento, table);

    return alimentoDetailUI;

}

function onAddAlimento(context){
    var model = context.getModel();
    var grupo = model.getColumnValue("Alimento", "grupo_alimento_id");

    $("#alimento_container_"+grupo).dialog('open');

}

function onEditAlimento(context){
    var model = context.getModel();
    var grupo = model.getColumnValue("Alimento", "grupo_alimento_id");

    $("#alimento_container_"+grupo).dialog('open');

}

function onDelAlimento(context){
    var model = context.getModel();
    var grupo = model.getColumnValue("Alimento", "grupo_alimento_id");

    $("#alimento_container_"+grupo).dialog('open');

}

function onSaveAlimento(data, model, context){
    context.reload();

    var grupo = model.getColumnValue("Alimento", "grupo_alimento_id");

    $("#alimento_container_"+grupo).dialog('close');

}

function crearDialogo(){
    $('.alimento_container').dialog({
        autoOpen: false,
        title: 'Detalle de Alimento',
        width: '650px'
    });
}

function onAlimentosLoad(){
    initEvaluacionesTableUI();
    initAlimentoDetailUI();

    pacienteModel.removeOnRowLoadListener(actualizar, pacienteModel);
    pacienteModel.addOnRowLoadListener(actualizar, pacienteModel);

    pacienteModel.removeIdChangedListener(pacienteDetailSelect, pacienteDetailUI);
    pacienteModel.addIdChangedListener(pacienteEvaluacionSelect, evaluacionesModel);

    evaluacionesDetailUI.removeOnAddListener(onAddEvaluacion, evaluacionesDetailUI);
    evaluacionesDetailUI.addOnAddListener(onAddEvaluacion, evaluacionesDetailUI);

    crearDialogo();
    cargarGraficos(pacienteModel.idColumn.value);

    evaluacionesDetailUI.add();

}
